package vista;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Map;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

import modelo.Partido;
import modelo.Prefeito;
import modelo.Vereador;

@SuppressWarnings("serial")
public class PainelApurador extends JPanel implements ActionListener {

	JPanel painelPrincipal;
	JPanel novo;
	JButton finalizar;
	JPanel fim;
	Map<String, JButton> botoes;
	Map<String, Vereador> vereadores;
	Map<String, Prefeito> prefeitos;
	Map<String, Partido> partidos;

	public PainelApurador(int secao, int votosNulosVereador,
			int votosNulosPrefeito, int quantidadeEleitores, int abstencoes,
			Map<String, Vereador> vereadores, Map<String, Prefeito> prefeitos,
			Map<String, Partido> partidos) {
		this.vereadores = vereadores;
		this.partidos = partidos;
		this.prefeitos = prefeitos;
		finalizar = new JButton("fim");
		fim = new JPanel();
		painelPrincipal = new JPanel(new BorderLayout());
		JPanel painelSul = new JPanel();
		JPanel painelNorte = new JPanel(new GridBagLayout());
		GridBagConstraints flow = new GridBagConstraints();
		GridBagConstraints down = new GridBagConstraints();

		flow.fill = GridBagConstraints.BOTH;
		flow.weightx = 1;
		flow.gridwidth = GridBagConstraints.REMAINDER;
		down.fill = GridBagConstraints.BOTH;
		down.weightx = 1;
		down.gridwidth = GridBagConstraints.REMAINDER;

		painelNorte.add(new JLabel("secao " + secao), down);
		painelNorte.add(new JLabel("Numero de eleitores: "	+ quantidadeEleitores), down);
		painelNorte.add(new JLabel("Numero de abstencoes: " + abstencoes), down);
		painelNorte.add(new JLabel("Votos Nulos para Vereador: " + votosNulosVereador), down);
		painelNorte.add(new JLabel("Votos Nulos para Prefeito: " + votosNulosPrefeito), down);

		for (String s : vereadores.keySet()) {
			painelNorte.add(new JLabel(vereadores.get(s).getNome() + ": " + vereadores.get(s).getNumVotos()));
		}
		
		for (String s : prefeitos.keySet()) {
			painelNorte.add(new JLabel(prefeitos.get(s).getNome() + ": " + prefeitos.get(s).getNumVotos()));
		}

		finalizar.addActionListener(this);
		painelSul.add(finalizar);

		fim.add(new JLabel("FIM!"));

		painelPrincipal.add(painelNorte, BorderLayout.NORTH);
		painelPrincipal.add(painelSul, BorderLayout.SOUTH);

		add(painelPrincipal);
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent evt) {
		Object source = evt.getSource();

		if (source == finalizar) {
			remove(painelPrincipal);
			add(fim);
			updateUI();
		}
	}

}
